XMonitor 1.3
by Jon Daniels <apex@forked.net>

XMonitor is a real-time system and email monitoring application.

Installation

XMonitor will be placed in your Applications folder unless specified otherwise.

Help

Moving your mouse over an object will display a Help Tag with information about that object.  While a Help Tag is shown, hold down the Command (Open Apple) key to view in-depth information about that object.  For example, move your mouse over the Network icon and press the Command key. You will see the total amount of network traffic since computer startup.

To change display mode, click the triangles and square/rectangular buttons, use the Main menu, Contextual menu, Dock menu, or the keyboard shortcuts. Continue reading for more help and information.

User Interface

Disclosure Triangles and Toggle Boxes allow you to customize the information displayed by XMonitor. Keyboard shortcuts, Contextual menus, and Dock menus are also available to access common functions.  Status Line mode will not display any graphs, this is a very low cpu mode. Horizontal and Vertical mode display only the graphs and optionally the icons and some data readouts in a smaller window.  Both Horizontal & Vertical modes use ~20% less CPU than Normal mode. A Contextual menu can be accessed by holding Control and clicking anywhere in the application. There are numerous configuration and display option available that i won't mention here. Experiment to find the combination that works best for you.

Email Monitoring will change the Mailbox icon to a 'you have mail' type icon if you have new mail. Clicking on this icon will revert it to the 'no mail' icon until new mail arrives.

Remote Hosts

This window will display the status of remote computers.  Click on any field in the Host list and type the Hostname or IP address of a computer.  If the computer is online and working, the Status field will be green with the word "up" displayed.  If the computer is down it will be red and display "down".  Each host will be polled every 20 seconds. If a host does not respond after that time, it will be polled again. If it still does not respond its status will show "down".  This window may be placed in the dock (Command-M) and will update normally.  Hostnames will be saved automatically when the window is closed, and reloaded when opened again. Press Command-2, control-click on the main xmonitor window, or use the dock menu to view the Remote Hosts window. Very Small CPU hit.

History

The History window displays a record of activity for each of the four categories; network, load, disk, and memory.  Each category can display anywhere from 60 minutes to 60 days of historical data.  The Update Interval controls the compression rate of data.  For example, an update interval of 5 would show 5 hours (5*1 hour) of hourly data and 5 days (5*1 day) of daily data.  The current compression information is available in the graph selection menu and in the help tag.  This window may be placed in the dock (Command-M) and will update normally. Press Command-1, control-click on the XMonitor window, or use the Dock menu to view the History window. Small CPU hit.

Preferences

The first time you install XMonitor, you can open the preferences menu to configure XMonitor and enable features such as email monitoring.

Transparency is adjusted via a slider. Move it to the right and XMonitor becomes more transparent.  Move it to the left and it becomes more opaque. If it is all the way to the left, transparency will be disabled.  If greater than 0 Small CPU hit.

External IP will display an internet visible IP address instead of a local address.

Averages displays a line in most graphs representing the 10 second average data rate. Small CPU hit.

Dock Icon allows you to put all four or any one graph into the Dock. Very small CPU hit.

Graphing can be in combined or dual mode.  Dual mode displays send/write/system data from the top down while displaying receive/read/user from the bottom.  Combined displays them stacked together from the bottom.

Email Monitoring allows you to be notified if you have new mail. It also displays how many messages you have waiting.  This will not download, delete, or otherwise affect normal operations of your email. POP3 and IMAP protocols are available.

Save History saves data to generate reports in the History window. Small CPU hit.

Advanced Preferences

Update Interval specifies how often to poll the system and display the information (in seconds).  Lowering this will decrease the amount of CPU time used. An update interval greater than ~10 may cause data to go off the graphs. 1=High CPU hit.

Scale Averaging will trunctuate the highest two spikes of each graph. This keeps the graphs from scaling upwards if only one or two spikes are off the chart.

Scale defaults to automatic scaling, which adjusts the scale of each graph according to how much data is currently displayed.  This can be overridden and set to a specific scale.

Frequently asked questions

What is "load average"?
The load average provides a convenient way to summarize the activity on a system.  UNIX defines the load average as the average number of processes in the kernel's run queue during an interval.  A "process" is a single stream of instructions.  Most programs run as a single process, but some spawn (UNIX terminology: "fork") other processes as they run. A load average of 3 to 5 is not that severe, but you normally see the load averaging less than one or two.

What are page faults?
Interrupts that occur when a program requests data that is not currently in memory. The interrupt triggers the operating system to fetch the data from a disk and load it into RAM. These are shown in the Memory graph.
Mac OS X copies a certain number of pages from your storage device to main memory. When a program needs a page that is not in main memory, the operating system copies the required page into memory and copies another page back to the disk. Each time a page is needed that is not currently in memory, a page fault occurs.

What is Update Interval and what does it do?
This is best explained with an example:  If the update interval is set to 10, XMonitor will only update its graphs, speeds, and most other information every 10 seconds.  The graphs will be condensed--the last ten seconds of data will only take up one line (1 pixel of width) in the graph, not 10.  However, the textual information will be in data per second, not data per ten seconds.  This is a fantastic way to make XMonitor use less of your CPU.  An update interval of 2 will cause XMonitor to use 45% less cpu, an interval of 4 would use 80% less CPU time.  You can test this using the Terminal command 'top -a'.

What does 'renice'ing do?
Thanks to it's BSD kernel, Mac OS X has an application scheduling system.  You are able to make Applications have a very high priority and they will always get cpu time before any other program. Alternatively, you may prioritize an application to the lowest level and it will only get cpu time after all other processes with a higher priorty have gotten theirs. The default slider value represents a normal priority level (0). Moving the slider will lower XMonitors priority.

What's this "CPU hit" stuff?
By enabling, disabling, or changing preferences in XMonitor you can fine-tune not only what information you see, but also how much CPU time is used by XMonitor.  A "very small" cpu hit would save a barely noticeable amount of cpu time (less than 2%).  "Small" CPU hit would possibly reduce XMonitor's CPU usage by 5-10%. "High" CPU hit items can reduce CPU usage by as much as 80-90%.

What are all these numbers and letters all over the place? (useless debugging symbols)
Some shortened terms are used to conserve screen space:

G = Gigabytes	(1024 Megabytes)
M = Megabytes	(1024 Kilobytes)
K = Kilobytes	(1024 Bytes)
B = Bytes		(8 bits)

d = days
h = hours
m = minutes

u = used memory
f = free memory

Bugs

Bug Reporting is built into XMonitor.  If you experience an error you will have the option of sending a bug report from within XMonitor.  It is highly recommended you submit a bug report so any bugs will be fixed in the next version.  Alternatively, you may email bugs@forked.net.

Release Notes

[NEW] = New feature
[CHG] = Item has been changed
[BUG] = Bug was fixed

	1.3

[NEW]	Adjustable Text Font & Size
[CHG]	No longer dim when in the background.
[CHG]	Support for up to 20 remote hosts.
[BUG]	Fixed a memory leak of 14 bytes every time text was drawn.

	1.2

[NEW]	Graph Scale can be fixed at a specific setting via the Advanced preference tab.
[NEW]	Remote Host Window: Status monitoring of remote computers via ICMP (Command-2).
[NEW]	History Window: Daily and Hourly statistics for network, memory, disk, and load 	(Command-1).
[NEW]	Host Monitoring and History windows will update when minimized in the dock.
[NEW]	Menu options to change display modes with keyboard shortcuts: Command-Shift-V,N,H 	(Vertical, Normal, Horizontal).
[NEW]	Window Menu, Dock menu items, and Contextual Menu items for opening the Preferences, 	Remote Host, and History windows with keyboard shortcuts: Command-0, 1, and 2 respectively.
[NEW]	Button in General preferences to restore defaults, including window positions.
[CHG]	Graphs were 49X49 pixels when 50X50 pixels worth of data existed. Graphs are now larger in 	order to display all of the data.
[CHG]	Updated Documentation.
[CHG]	Completely redesigned the Preferences window & added Advanced tab.
[CHG]	Trimmed a few pixels off the vertical window by fixing some uneven spacing.
[CHG]	Lowered CPU usage by 32-59%.
[BUG]	The default window mode could have been Status Line only.
[BUG]	During a scale change for the load graph, the percent of user/system load amounts were 	calculated for the current percentage when drawing each line instead of the percentage for 	that line.
[BUG]	Network Average was incorrect if update interval was > 1.
[BUG]	Dock menu item for Dock icon wouldn't get check marked at application start.

	1.1.2

[BUG]	Installation problems fixed
[BUG]	Speeds under 1K could get formatted incorrectly (890.343254325 bytes, etc.)
[BUG]	Email password could easily become corrupted
[BUG]	Speeds were computed incorrectly if update interval was > 1
[BUG]	In application url for website was incorrect in two places
[BUG]	On scale change, network graph would show disk graphs average line

	1.1.1

[NEW]	Adjustable volume.
[NEW]	List of sounds to choose from to play on new mail
[BUG]	Nice level could have become corrupted
[BUG]	Unregistered plugin error

	1.1

[NEW]	Added preference to renice the application to a lower level.
[NEW]	Variable Update Interval.  This allows the user to specify how much cpu time
	XMonitor uses.
[NEW]	Smooth window transitions. Might look a bit odd at times, but definately cool
[NEW]	Mail password stored in an encrypted format
[NEW]	Dock menu items: refresh ip address, refresh mail count
[NEW]	Contextual menu items: refresh ip address, refresh mail count
[NEW]	IMAP support
[BUG]	Horizontal grid lines showed up over data lines after scale change
[BUG]	Now removes error messages in mail help tag once problem goes away
[BUG]	External IP would revert back to local IP
[BUG]	Lost threads would cause a pause during which no input was accepted
[BUG]	Another -38 Error fixed
[BUG]	Mem graph could go off the scale

	1.1b2

[NEW]	Contextual menu to hide and show information when in Graphs Only mode and 	Vertical display mode. (Control-click)
[NEW]	Vertical Display mode
[NEW]	Option to display all four, or a single graph in the Dock.
[NEW]	Customizable colors
[NEW]	Remembers window mode and positions
[NEW]	Dual or Combined graph modes
[NEW]	Percent of RAM active
[NEW]	Get external (world visible) IP address option
[NEW]	Disk read/write numerical speed and average speed
[NEW]	Max disk read/write speed (all-time and session)
[NEW]	If mail checking has an error, the number of mails text will change to "err"
	and the Help Tag will display the full error message
[NEW]	Size of Inbox in KB displayed in expanded help tag for the Messages In Inbox
	object
[NEW]	wired,free,active,inactive memory shown in ram icon Help Tag
[NEW]	Session fastest network send speed, session fastest network receive speed
[NEW]	Average disk rw speed and average load shown graphically
[NEW]	Option to disable display of graph averages
[CHG]	Moved scale text down into the graphs
[CHG]	Removed titlebar and made entire window draggable (saves lots of space)
[CHG]	Average lines now based on last 10 seconds of data instead of last 50
[CHG]	Increased width of average lines
[CHG]	Less cluttered Preferences
[CHG]	Preferences use Help Tags now instead of custom Help Box
[CHG]	Many changes in Disk and Network related help and extended help tags
[CHG]	Removed redundant information from help tags and replaced it with unique
	information from expanded help tags
[CHG]	Combined Max speed box now displays Session combined max speed instead
	of All-time max speed
[BUG]	Conformed better to the POP3 protocol
[BUG]	% of load by user/system split was completely innacurate
[BUG]	Bug reports started sending without pressing the submit button
[BUG]	File paths work when special characters are involved
[BUG]	Session max disk speed was out of alignment by 2 pixels

	1.0.1

[BUG]	-38 command not found error fixed
[BUG]	-38 (setuid) error caused if users Applications folder was not owned by root
[BUG]	Spelling error (received not recieved)
[BUG]	Help display in prefs was partially offscreen

	1.0

[BUG]	Cosmetic fixes. Text was not fitting into fields/windows
[BUG]	Supports more than 2048MB data and disk amounts
[BUG]	Some help text shortened to fit in windows
[BUG]	No more -2 error if more than 10 disks mounted
[BUG]	Support for large disk read/write amounts
[BUG]	Lower part of XMonitor would not get redrawn under some circumstances
[CHG]	Disabled or enable email prefs editing if email monitoring is on or off 
[CHG]	Changed the ordering of some text for consistency
[CHG]	More preference changes take place in realtime
[CHG]	Removed unused PPP monitoring toggle
[CHG]	Removed eject button (kinda pointless)
[CHG]	Decreased helpbox and xmonitor window height by 4 pixels
[CHG]	Modified graphics drawing routines, uses 20% less cpu now
[CHG]	Made all dialogs and windows more in line with Apple's HIG.
[CHG]	Enabled Live Scrolling for transparency levels (Wow!)
[CHG]	Moved some custom inline help into OSX native Help Tags
[CHG]	Truncuate disk names if they are too long to be displayed

Contact

XMonitor by Jon Daniels             <apex@forked.net>
Support                                    <XM-support@forked.net>
Bug Reports                              <bugs@forked.net>

Copyright © 1998-2002 fork networking, LLC